/*
 * Copyright 2006 Mat Gessel <mat.gessel@gmail.com>
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 * 
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 */
package asquare.gwt.tests.test;

import com.google.gwt.junit.client.GWTTestCase;

public class StaticJSNIInitializer extends GWTTestCase
{
	public String getModuleName()
	{
		return "asquare.gwt.tests.UnitTests";
	}
	
	protected static boolean s_jsInitialized = false;
	
	private static native void jsInit() /*-{
		// define a native function to call from GWT
		JSApi = new Object();
		JSApi.quote = function(string)
		{
			return '"' + string + '"';
		};
	}-*/;
	
	protected void setupImpl()
	{
		if (! s_jsInitialized)
		{
			jsInit();
			s_jsInitialized = true;
		}
	}
	
	public void testSimple()
	{
		setupImpl();
		assertEquals("\"value\"", jsQuote("value"));
	}
	
	private native String jsQuote(String string) /*-{
		return JSApi.quote(string);
	}-*/;
}
